package main.java.ufabc.edu.compiladores.javauino.analisadores.lexico.enumx;

public enum Kind {
	// FIXME verificar
	UNKNOWN(0, ""), EOF(1, ""), IDENTIFIER(2, ""), NUMBER(3, ""), CHARACTER(4, ""),

	// reserved keywords
	CLASS(5, "class"), PUBLIC(6, "public"), STATIC(7, "static"), VOID(8, "void"), MAIN(9, "main"), EXTENDS(10,
			"extends"), RETURN(11, "return"), INT(12, "int"), CHAR(13, "char"), BOOLEAN(14, "boolean"), IF(15, "if"), ELSE(
			16, "else"), WHILE(17, "while"), LENGTH(18, "length"), FINAL(19, "final"), TRUE(20, "true"), FALSE(21,
			"false"), HIGH(22, "HIGH"), LOW(23, "LOW"), INPUT(24, "INPUT"), OUTPUT(25, "OUTPUT"), THIS(26, "this"), NEW(
			27, "new"),

	// operators
	PERIOD(28, "."), LEFT_BRACKET(29, "["), RIGHT_BRACKET(30, "]"), LEFT_BRACE(31, "{"), RIGHT_BRACE(32, "}"), LEFT_PARENTHESIS(
			33, "("), RIGHT_PARENTHESIS(34, ")"), AND(35, "&&"), OR(36, "||"), LESS(37, "<"), LESS_EQUAL(38, "<="), GREATER(
			39, ">"), GREATER_EQUAL(40, ">="), PLUS(41, "+"), MINUS(42, "-"), MULTIPLICATION(43, "*"), SLASH(44, "/"), EQUAL(
			45, "=="), NOT_EQUAL(46, "!="), ASSIGN(47, "="), SEMICOLON(48, ";"), COMMA(49, ","), EXCLAMATION(50, "!");

	private String value;

	private int key;

	Kind(int key, String value) {
		this.key = key;
		this.value = value;
	}

	/**
	 * @return the value
	 */
	public String getValue() {
		return value;
	}

	/**
	 * @return the key
	 */
	public int getKey() {
		return key;
	}

}
